home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / hard / drivr / BetaScan_1.12.lha / BetaScan / ScannerDev / Scanner.h < prev    next >
C/C++ Source or Header  |  1998-10-04  |  4KB  |  139 lines

  1. #ifndef SCANNER_H
  2. #define SCANNER_H
  3.  
  4. #include <exec/types.h>
  5. #include <exec/io.h>
  6.  
  7. // Non standard command for the scanner
  8. #define SCANCMD_SET CMD_NONSTD
  9.  
  10. // Color numbers
  11. #define COLORNUM_HALFTONE   (0x01<<0)
  12. #define COLORNUM_BW         (0x01<<1)
  13. #define COLORNUM_GREY8      (0x01<<8)
  14. #define COLORNUM_RGB24      (0x01<<24)
  15.  
  16. // Status codes
  17. #define SCAN_STATUS_OK           0
  18. #define SCAN_STATUS_EOF          1
  19. #define SCAN_ERR_NOTSCANNING    10
  20. #define SCAN_ERR_DEVICEOPEN     11
  21. #define SCAN_ERR_MEMORY         12
  22. #define SCAN_ERR_READY          13
  23. #define SCAN_ERR_PARAMETER      14
  24. #define SCAN_ERR_HARDWARE       15
  25. #define SCAN_ERR_COMMUNICATION  16
  26. #define SCAN_ERR_MISC           17
  27.  
  28. struct ScannerOptions
  29. {
  30.   char  so_vendor[40];
  31.   char  so_model[40];
  32.   UBYTE so_version;
  33.   UBYTE so_revision;
  34.         
  35.   ULONG so_colorMode;           /* bit set = supported colornum */
  36.                                 /* bit 0 = halftone             */
  37.   UWORD so_opticResolution;     /* Maximum optical resolution   */
  38.   UWORD so_opticResStep;
  39.   UWORD so_interResolution;     /* Maximum interpolated resolut */
  40.   UWORD so_interResStep;
  41.   
  42.   WORD  so_brightnessMin;       /* Percent of maximum light to add */
  43.   WORD  so_brightnessMax;
  44.   WORD  so_brightnessStep;
  45.   WORD  so_brightnessDefault;
  46.   
  47.   WORD  so_contrastMin;         /* Percent */
  48.   WORD  so_contrastMax;
  49.   WORD  so_contrastStep;
  50.   WORD  so_contrastDefault;
  51.   
  52.   WORD  so_shadowMin;
  53.   WORD  so_shadowMax;
  54.   WORD  so_shadowStep;
  55.   WORD  so_shadowDefault;
  56.   
  57.   WORD  so_highlightMin;
  58.   WORD  so_highlightMax;
  59.   WORD  so_highlightStep;
  60.   WORD  so_highlightDefault;
  61.   
  62.   WORD  so_midtoneMin;
  63.   WORD  so_midtoneMax;
  64.   WORD  so_midtoneStep;
  65.   WORD  so_midtoneDefault;
  66.   
  67.   WORD  so_exposureTimeMin;
  68.   WORD  so_exposureTimeMax;
  69.   WORD  so_exposureTimeStep;
  70.   WORD  so_exposureTimeDefault;
  71.   
  72.   WORD  so_velocityMin;
  73.   WORD  so_velocityMax;
  74.   WORD  so_velocityStep;
  75.   WORD  so_velocityDefault;
  76.   
  77.   WORD  so_halftonePatternMin;
  78.   WORD  so_halftonePatternMax;
  79.   WORD  so_halftonePatternStep;
  80.   WORD  so_halftonePatternDefault;
  81.   
  82.   WORD  so_maxLookupTableSize;
  83.  
  84.   ULONG so_flags;
  85.  
  86.   double so_docWidth;            /* Paper size in mm                   */
  87.   double so_docLength;
  88. };
  89.  
  90. /*
  91.  * Option flags
  92.  *
  93.  */
  94. #define FORCE_3PASS    (1<<0)
  95.  
  96. struct ScanParameters
  97. {
  98.   ULONG  sp_ColorNum;            /* 0: halftone, >0: number of colors  */
  99.   double sp_x0;                  /* Scanning frame in mm               */
  100.   double sp_y0;
  101.   double sp_x1;
  102.   double sp_y1;
  103.   UWORD  sp_xResolution;         /* Horizontal resolution              */
  104.   UWORD  sp_yResolution;         /* Vertical resolution                */
  105.   WORD   sp_brightness[3];       /* Brightness for red, green and blue */
  106.   WORD   sp_contrast;            /* Contrast                           */
  107.   WORD   sp_shadow;              /* shadow adjust                      */
  108.   WORD   sp_highlight;           /* highlight adjust                   */
  109.   WORD   sp_midtone;             /* midtone adjust                     */
  110.   WORD   sp_halftonePattern;     /* halftomePattern                    */
  111.   WORD   sp_exposureTime;        /* Exposure time                      */
  112.   double sp_gamma;               /* gamma value                        */
  113.  
  114.   ULONG  sp_flags;
  115. };
  116.  
  117. /*
  118.  * Flags
  119.  *
  120.  */
  121. #define REVERSE_COLOR (1<<0)
  122. #define NO_CALIBRATE  (1<<1)
  123. #define NO_BACKTRACK  (1<<2)
  124. #define EXTENDED_RES  (1<<3)
  125. #define DO_3PASS      (1<<4)
  126.  
  127.  
  128. struct ScanInformation
  129. {
  130.   UWORD sv_imageWidth;           /* image width in pixels               */
  131.   UWORD sv_imageHeight;          /* image height in pixels              */
  132.   UWORD sv_bytesPerLine;         /* bytes per line read (excl. color)   */
  133.   UWORD sv_Flags;                /* data information flags              */
  134.   UWORD sv_xResolution;          /* actual horizontal resolution        */
  135.   UWORD sv_yResolution;          /* actual vertical resolution          */
  136. };
  137.  
  138. #endif /* SCANNER_H */
  139.